🎉 سال نو، مهارت نو، مشاوره رایگان نقشه راه برنامه نویسی (آفر ویژه ثبت نام قبل از افزایش قیمت 🔥)
۰ ثانیه
۰ دقیقه
۰ ساعت
۳ Mahdi
اعمال نشدن permission‌های نقش
جامعه لاراول ایجاد شده در ۰۵ فروردین ۱۴۰۲

سلام

در پنلمون به یوزر لاگین هم نقش دادم هم permission

به همون role هم permission دادم از directive can در navbar استفاده کردم و permission مربوطه رو به can دادم

ولی اپشنی ک من تعین کردم برای کاربر نمایش داده نشد

ی دیرکتیو برای role set کردم و به اون دیرکتیو نقش دادم ولی بازم permission اون نقش برای کاربر در navbar نمایش داده نشد

میدلور ساختم و registerش کردم وقتی اعمالش کردم روی روت هام الان به کل دسترسی به روت‌های مربوط رو از کاربرم گرفته درصورتیکه کاربرم اون رول رو داره

کدهای دیرکتیوم

        Blade::if('role', function ($role) {
            return auth()->check() && auth()->user()->hasRole($role);
        });
                        @role('show panel')
                            "{{ route('users.index') }}" class="dropdown-item">@lang('users.panel')
                        @endrole

برای gate هم

                        @can('show panel')
                            "{{ route('users.index') }}" class="dropdown-item">@lang('users.panel')
                        @endcan

middleware م

    public function handle(Request $request, Closure $next, $role)
    {
        if (!$request->user() || !$request->user()->hasRole(($role))) {
            abort(404);
        }
        return $next($request);
    }
        'role' => \\App\\Http\\Middleware\\RolMiddleware::class,
Route::middleware('role:admin')->group(function () {
    Route::prefix('panel')->group(function () {
        Route::get('users', [UserController::class, 'index'])->name('users.index');
        Route::get('users/{user}/edit', [UserController::class, 'edit'])->name('users.edit');
        Route::put('users/{user}', [UserController::class, 'update'])->name('users.update');
        Route::get('roles', [RoleController::class, 'index'])->name('roles.index');
        Route::post('', [RoleController::class, 'store'])->name('roles.store');
        Route::get('roles/{role}/edit', [RoleController::class, 'edit'])->name('roles.edit');
        Route::put('roles/{role}', [RoleController::class, 'update'])->name('roles.update');
    });
});

سلام مهدی عزیز

کدها رو که بررسی کردم مشکلی ندارن.

بنظرم از متدهای گرفتن نقش هست مشکل...

دامپ بگیر از متدها ببین درست برمیگردن و ران میشن؟

احمدرضا فاطمی کیا ۰۵ فروردین ۱۴۰۲، ۱۱:۳۵

متدها درست کار میکنن قبل از اینکه assign شون کنم به blade امتحانشون کردم

Mahdi ۰۵ فروردین ۱۴۰۲، ۱۱:۳۸

پروژه رو در گیت قرار بده بررسی بشه.

احمدرضا فاطمی کیا ۰۵ فروردین ۱۴۰۲، ۱۲:۴۱